//
// Description: 802. 区间和
// Created by Loading on 2021/11/28.
//

#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> PII;

constexpr int N = 3e5 + 10;

// 数据数组，前缀和数组
int a[N], s[N];

// 离散化
int main() {
    // 离散化数组，下标映射
    vector<int> all;
    vector<PII> add, query;
    int n, m;
    cin >> n >> m;
    // 下标加入 all 数组，下标+增量 加入 add 数组
    for (int i = 0; i < n; ++i) {
        int x, c;
        cin >> x >> c;
        all.emplace_back(x);
        add.emplace_back(PII{x, c});
    }

    // 左右区间下标加入 all 数组，query 数组
    for (int i = 0; i < m; ++i) {
        int l, r;
        cin >> l >> r;
        all.emplace_back(l);
        all.emplace_back(r);
        query.emplace_back(PII{l, r});
    }

    // 去重
    sort(all.begin(), all.end());
    all.erase(unique(all.begin(), all.end()), all.end());

    // 处理增量
    for (auto &it : add) {
        // 二分查找映射，前缀和数组下标从 1 开始，故最后加一，下同
        int x = lower_bound(all.begin(), all.end(), it.first) - all.begin() + 1;
        a[x] += it.second;
    }

    // 处理前缀和
    for (int i = 1; i <= all.size(); ++i) {
        s[i] = s[i - 1] + a[i];
    }

    // 处理询问
    for (auto &it : query) {
        int l = lower_bound(all.begin(), all.end(), it.first) - all.begin() + 1;
        int r = lower_bound(all.begin(), all.end(), it.second) - all.begin() + 1;
        cout << s[r] - s[l - 1] << endl;
    }

    return 0;
}